package vns.client.service;

import java.util.ArrayList;
import java.util.List;

import vns.shared.ObjectDTO;
import vns.shared.ObjectPropertyDTO;
import vns.shared.ObjectValueDTO;

import com.google.appengine.api.datastore.Key;
import com.google.gwt.user.client.rpc.AsyncCallback;

public interface ObjectValueServiceAsync {

	void Create(ObjectValueDTO ovalueDTo, AsyncCallback<ObjectValueDTO> callback);

	void Remove(Key id, AsyncCallback<Boolean> callback);

	void Update(ObjectValueDTO ovalueDTO, AsyncCallback<ObjectValueDTO> callback);

	void Loadbyid(Key id, AsyncCallback<ObjectValueDTO> callback);

	void Loadall(ObjectDTO objectDTO,
			AsyncCallback<List<ObjectValueDTO>> callback);

	void Loadall(ObjectPropertyDTO opropertyDTO,
			AsyncCallback<ArrayList<ObjectValueDTO>> callback);

	void Updateall(List<ObjectValueDTO> listNew, ObjectDTO objectDTO,
			AsyncCallback<Void> callback);

	void Updateall(List<ObjectValueDTO> listNew,
			ObjectPropertyDTO opropertyDTO, AsyncCallback<Void> callback);

	void LoadAll(ObjectDTO objectDTO,
			List<ObjectPropertyDTO> listObjectPropertyDTO,
			AsyncCallback<ArrayList<ObjectValueDTO>> callback);

	void LoadBy(ObjectDTO objectDTO, ObjectPropertyDTO objectPropertyDTO,
			AsyncCallback<List<ObjectValueDTO>> callback);

	void UpdateAll(List<ObjectValueDTO> listValue , AsyncCallback<Void> callback);

	void LoadAll(AsyncCallback<List<ObjectValueDTO>> callback);

}
